﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace VerdePimienta2._0
{
    public partial class Chema : Form
    {
        public Chema()
        {
            InitializeComponent();
        }

        //Variables Globales
        DataTable dtcompra = new DataTable();
        string constring = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\VP\\des_VP.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
        //string constring = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\VP\\verdepimientadb.mdf;Integrated Security=True;User Instance=True";
        //string constring = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Documents and Settings\\Chema\\Mis documentos\\Visual Studio 2008\\Projects\\VerdePimienta2.0\\VerdePimienta2.0\\verdepimientadb.mdf;Integrated Security=True;User Instance=True";
        bool enterPulsado = false;

        //dbuebudbeudbue
        //modificacion deindiendiendeindineidnie cubasas

        private void Chema_Load(object sender, EventArgs e)
        {
            //Rellenar combo empleados
            RellenarComboEmpleados r = new RellenarComboEmpleados();
            r.RellenarComboE(cmbEmpVenta);
            cmbEmpVenta.SelectedIndex = 0;
            cmbCategoriaProducto.SelectedIndex = 0;
            cmbTipoPago.SelectedIndex = 0;
            cmbTipoVenta.SelectedIndex = 0;

            //Creo la tabla de compras
            dtcompra.Columns.Add("Categoria");
            dtcompra.Columns.Add("Producto");
            dtcompra.Columns.Add("Unidades");
            dtcompra.Columns.Add("Precio");
            
            dtgCompra.DataSource = dtcompra;
        }

        private void aniadirFila(string cat, string prod, int unidades, float precio)
        {
            
            //Metodo para añadir un Producto a la tabla compra
            DataRow dtrcompra = dtcompra.NewRow();
            dtrcompra["Categoria"] = cat;
            dtrcompra["Producto"] = prod;
            dtrcompra["Unidades"] = unidades;
            dtrcompra["Precio"] = precio;
            dtcompra.Rows.Add(dtrcompra);

            refrescarBarra();
                     
        }

        private void refrescarBarra()
        {
            cmbCategoriaProducto.Text = "1 - Flor";
            txtProducto.Text = "genérico";
            txtCantidadProducto.Text = "";
            txtPrecioUnidadProducto.Text = "";

        }
               
        private void CalcularTotalVenta() 
        {
            float totalCompra = 0;
            float totalFlores = 0;
            float totalOtros = 0;
            float ivaFlores = 0;
            float ivaOtros = 0;

            for (int i = 0; i < dtgCompra.Rows.Count; i++)
            {
                int unidades = int.Parse(dtgCompra.Rows[i].Cells[2].Value.ToString());
                float precio = float.Parse(dtgCompra.Rows[i].Cells[3].Value.ToString());
                string categoria = dtgCompra.Rows[i].Cells[0].Value.ToString();

                if ((categoria.Equals("1 - Flor")) || (categoria.Equals("2 - Planta")))
                {
                    totalFlores = totalFlores + (unidades * precio);
                }
                else
                {
                    totalOtros = totalOtros + (unidades * precio);
                }
            }
            ivaFlores = totalFlores * 0.07f;
            ivaOtros = totalOtros * 0.16f;
            totalCompra = totalOtros + totalFlores;

            txtTotalVenta.Text = totalCompra.ToString();
            txtIVAFlor.Text = ivaFlores.ToString();
            txtIVAOtros.Text = ivaOtros.ToString();
        }

        private void btnAniadirProducto_Click(object sender, EventArgs e)
        {
            Validaciones vv = new Validaciones();

            if (string.IsNullOrEmpty(cmbCategoriaProducto.Text) || string.IsNullOrEmpty(txtProducto.Text) || string.IsNullOrEmpty(txtCantidadProducto.Text)
                || string.IsNullOrEmpty(txtPrecioUnidadProducto.Text))
            {
                MessageBox.Show("Se deben introducir todos los campos para añadir un producto.", "Añadir Producto.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                if ((!vv.EsNum(txtCantidadProducto.Text)) || (!vv.EsNum(txtPrecioUnidadProducto.Text)))
                {
                    MessageBox.Show("Los campos cantidad y precio deben ser numéricos.", "Añadir Producto.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    try
                    {
                        aniadirFila(cmbCategoriaProducto.Text, txtProducto.Text, int.Parse(txtCantidadProducto.Text), float.Parse(txtPrecioUnidadProducto.Text));
                    }
                    catch (Exception exc)
                    {
                        MessageBox.Show("Campos con formato incorrecto.", "Añadir Producto.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
        }

        private void dtgCompra_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
        {
            CalcularTotalVenta();
        }

        private void dtgCompra_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
        {
            CalcularTotalVenta();
        }

        private void btnVentaTicket_Click(object sender, EventArgs e)
        {
            
                if (cmbEmpVenta.Text != "(Seleccione)")
                {
                    if (dtgCompra.Rows.Count > 0 && txtTotalVenta.Text != "0")
                    {
                        if (txtPagadoVenta.Text == "")
                        {
                            MessageBox.Show("Debe introducir la cantidad pagada por el cliente.?.", "Venta.", MessageBoxButtons.OK, MessageBoxIcon.Question);
                        }
                        else
                        {
                            if (enterPulsado)
                            {
                                int codigoVenta = generarCodigoVenta();
                                if (guardarDatosVenta(codigoVenta, "venta") && guardarDatosProductosVenta(codigoVenta) )
                                {
                                    ImprimirTicket(codigoVenta,cmbEmpVenta.Text);
                                    
                                    if (txtDeuda.Text == "")
                                    {
                                        DialogResult dr = MessageBox.Show("La venta se ha realizado con éxito. Desea asociar la venta a un cliente?.", "Venta Completada.", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                                        if (dr == DialogResult.Yes)
                                        {
                                            enlazarClienteVenta enlace = new enlazarClienteVenta(codigoVenta, "0");
                                            resetForm();
                                            enlace.Show();
                                        }
                                        else
                                        {
                                            resetForm();

                                        }
                                    }
                                    else
                                    {

                                        MessageBox.Show("No se ha pagado el total de la cantidad de la venta, deberá recoger los datos del cliente.", "Venta Incompleta.", MessageBoxButtons.OK, MessageBoxIcon.Question);
                                        enlazarClienteVenta enlace = new enlazarClienteVenta(codigoVenta, txtDeuda.Text);
                                        resetForm();
                                        enlace.Show();

                                    }
                                }
                            }
                            else
                            {
                                MessageBox.Show("Debe introducir la cantidad pagada en la casilla de pagado y pulsar enter.", "Venta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Debe añadir productos a la venta.", "Venta Ticket", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show("Debe seleccionar un empleado.", "Venta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            
         }
                
        private void btnCancelarVenta_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        
        private int generarCodigoVenta()
        {
            int codigo = 0;
            string consulta = "Select count(*) from Ventas";

            SqlConnection conexion = new SqlConnection(constring);
            conexion.Open();

            SqlCommand cmd = conexion.CreateCommand();
            cmd.CommandText = consulta;

            codigo = (int)cmd.ExecuteScalar();
            cmd.Dispose();

            conexion.Close();

            codigo = codigo + 1;

            return codigo;
        }

        private void ImprimirTicket(int CodigoVenta,string empleado)
        {
            Ticket ticket = new Ticket();
            float subtotal;

            for (int i = 0; i < dtgCompra.Rows.Count; i++)
            {
                ticket.AddItem(dtgCompra.Rows[i].Cells[2].Value.ToString(), dtgCompra.Rows[i].Cells[1].Value.ToString(), dtgCompra.Rows[i].Cells[3].Value.ToString());
            }

            // IMPRIMIR TICKET  *******************************************************************************************
            ticket.HeaderImage = System.Drawing.Image.FromFile("C:\\VP\\LOGO6cms.jpg");

            ticket.AddHeaderLine("VerdePimienta ®");
            ticket.AddHeaderLine("Granada Development Businnes, S.L.");
            ticket.AddHeaderLine("C.I.F. B-82045311");
            ticket.AddHeaderLine("C/ Castilla la Mancha - Principado de Asturias. Las Rozas de Madrid");
            ticket.AddHeaderLine("Tlf: 916371515");
            ticket.AddHeaderLine(" ");
            ticket.AddHeaderLine("     www.verdepimienta.com");

            //El metodo AddSubHeaderLine es lo mismo al de AddHeaderLine con la diferencia
            //de que al final de cada linea agrega una linea punteada "=========="
            ticket.AddSubHeaderLine("Ticket #" + CodigoVenta.ToString() + " ");
            ticket.AddSubHeaderLine("Le atendió: " + empleado + " ");
            ticket.AddSubHeaderLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());

            //El metodo AddItem requeire 3 parametros, el primero es cantidad, el segundo es el nombre
            //del producto y el tercero es el precio... HECHO EN CADA PRODUCTO QUE SE GUARDA ARRIBA

            //El metodo AddTotal requiere 2 parametros, la descripcion del total, y el precio
            if(txtDescuento.Text == "0")
                subtotal = float.Parse(txtTotalVenta.Text) - float.Parse(txtIVAFlor.Text) - float.Parse(txtIVAOtros.Text);
            else
                subtotal = float.Parse(txtDescuento.Text) - float.Parse(txtIVAFlor.Text) - float.Parse(txtIVAOtros.Text);
            ticket.AddTotal("Subtotal: ", subtotal.ToString() + "€");
            ticket.AddTotal("IVA 7%", " " + txtIVAFlor.Text + " €");
            ticket.AddTotal("IVA 16%", " " + txtIVAOtros.Text + " €");
            if (txtDescuento.Text == "0")
                ticket.AddTotal("TOTAL", " " + txtTotalVenta.Text + " €");
            else
                ticket.AddTotal("TOTAL", " " + txtDescuento.Text + " €");
            ticket.AddTotal("", ""); //Ponemos un total en blanco que sirve de espacio

            //El metodo AddFooterLine funciona igual que la cabecera
            ticket.AddFooterLine("GRACIAS POR SU VISITA");

            //Y por ultimo llamamos al metodo PrintTicket para imprimir el ticket, este metodo necesita un
            //parametro de tipo string que debe de ser el nombre de la impresora.
            ticket.PrintTicket("Posiflex PP7000 Partial Cut v3L");

        }

        private void ImprimirFactura(int CodigoVenta)
        {
            Factura factura = new Factura();
            float subtotal;

            for (int i = 0; i < dtgCompra.Rows.Count; i++)
            {
                factura.AddItem(dtgCompra.Rows[i].Cells[2].Value.ToString(), dtgCompra.Rows[i].Cells[1].Value.ToString(), dtgCompra.Rows[i].Cells[3].Value.ToString());
            }

            // IMPRIMIR FACTURA  *******************************************************************************************
            factura.HeaderImage = System.Drawing.Image.FromFile("C:\\VP\\LOGO6cms.jpg"); //esta propiedad no es obligatoria
            factura.AddHeaderLine("Factura nº" + CodigoVenta.ToString() + "                                    VerdePimienta ® por Granada Development Businnes");
            //factura.AddHeaderLine("");
            factura.AddHeaderLine(DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString() + "             S.L. C.I.F. B-82045311   C/ Castilla la Mancha - Principado de Asturias");
            //factura.AddHeaderLine("");
            factura.AddHeaderLine("                                      Las Rozas de Madrid    Tlf: 916371515    www.verdepimienta.com");

            //El metodo AddItem requeire 3 parametros, el primero es cantidad, el segundo es el nombre
            //del producto y el tercero es el precio... HECHO EN CADA PRODUCTO QUE SE GUARDA ARRIBA

            //El metodo AddTotal requiere 2 parametros, la descripcion del total, y el precio
            if (txtDescuento.Text == "0")
                subtotal = float.Parse(txtTotalVenta.Text) - float.Parse(txtIVAFlor.Text) - float.Parse(txtIVAOtros.Text);
            else
                subtotal = float.Parse(txtDescuento.Text) - float.Parse(txtIVAFlor.Text) - float.Parse(txtIVAOtros.Text);
            factura.AddTotal("Subtotal:", subtotal.ToString() + "€");
            factura.AddTotal("IVA 7%", " " + txtIVAFlor.Text + " €");
            factura.AddTotal("IVA 16%", " " + txtIVAOtros.Text + " €");
            factura.AddTotal("", ""); //Ponemos un total en blanco que sirve de espacio
            if (txtDescuento.Text == "0")
                factura.AddTotal("TOTAL", " " + txtTotalVenta.Text + " €");
            else
                factura.AddTotal("TOTAL", " " + txtDescuento.Text + " €");
            factura.AddTotal("", ""); //Ponemos un total en blanco que sirve de espacio

            //Y por ultimo llamamos al metodo PrintTicket para imprimir el ticket, este metodo necesita un
            //parametro de tipo string que debe de ser el nombre de la impresora.
            //factura.PrintTicket("HP Deskjet F300 series");
            factura.PrintTicket("HP PSC 950");

            /* *************************************************************************************************************************** */

        }

        private bool guardarDatosProductosVenta(int codigo)
        {
            //Guardar en la tabla PRODUCTOS datos de cada producto comprado  
            try
            {
                SqlConnection conProductos = new SqlConnection(constring);
                conProductos.Open();

                SqlDataAdapter daProductos = new SqlDataAdapter("Select * From Productos", conProductos);

                DataSet dsProductos = new DataSet("Productos");

                daProductos.FillSchema(dsProductos, SchemaType.Source, "Productos");
                daProductos.Fill(dsProductos, "Productos");

                DataTable tblProductos;
                tblProductos = dsProductos.Tables["Productos"];

                for (int i = 0; i < dtgCompra.Rows.Count; i++)
                {
                    DataRow drProductos = tblProductos.NewRow();

                    drProductos["IdVenta"] = codigo;
                    drProductos["Tipo"] = dtgCompra.Rows[i].Cells[0].Value.ToString();
                    drProductos["Nombre"] = dtgCompra.Rows[i].Cells[1].Value.ToString();
                    drProductos["NumUnidades"] = dtgCompra.Rows[i].Cells[2].Value.ToString();
                    drProductos["PrecioUnidad"] = dtgCompra.Rows[i].Cells[3].Value.ToString();

                    tblProductos.Rows.Add(drProductos);


                }
                SqlCommandBuilder objCommandBuilderP = new SqlCommandBuilder(daProductos);
                daProductos.Update(dsProductos, "Productos");
                conProductos.Close();
            }
            catch(Exception excTicket)
            {

                MessageBox.Show("Error en acceso a base de datos (Datos Productos).", excTicket.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }

            return true;
        }

        private bool guardarDatosVenta(int CodigoVenta,string tipoVenta)
        {
            //Guardar los datos de la venta
            //Devuelve true si todo OK. 
            //Devuelve false si hay fallo en el acceso a la base de datos.
            try
            {
                SqlConnection conV = new SqlConnection(constring);
                conV.Open();

                SqlDataAdapter daVentaTickets = new SqlDataAdapter("Select * From Ventas", conV);

                DataSet dsVentaTickets = new DataSet("Ventas");
                daVentaTickets.FillSchema(dsVentaTickets, SchemaType.Source, "Ventas");
                daVentaTickets.Fill(dsVentaTickets, "Ventas");

                DataTable tblVentaTickets;
                tblVentaTickets = dsVentaTickets.Tables["Ventas"];

                DataRow drVentaTickets = tblVentaTickets.NewRow();

                //Rellenar datos en la tabla VENTA
                drVentaTickets["Id"] = CodigoVenta;
                drVentaTickets["IdCliente"] = "Desconocido";
                drVentaTickets["Fecha"] = dateVenta.Value.ToShortDateString();
                drVentaTickets["TipoVenta"] = cmbTipoVenta.Text;
                drVentaTickets["Empleado"] = cmbEmpVenta.Text;
                drVentaTickets["TipoPago"] = cmbTipoPago.Text;
                drVentaTickets["TotalFlorPlanta"] = txtIVAFlor.Text;
                drVentaTickets["TotalOtros"] = txtIVAOtros.Text;

                if (tipoVenta == "Devolucion")
                {
                    float totalEntregadonegado = 0 - float.Parse(txtTotalVenta.Text);
                    drVentaTickets["TotalEntregado"] = totalEntregadonegado.ToString();
                    
                    drVentaTickets["SinPagar"] = 0;
                    
                    float totalnegado = 0 - float.Parse(txtTotalVenta.Text);
                    drVentaTickets["Total"] = totalnegado.ToString();
                }
                else
                {
                    if (float.Parse(txtPagadoVenta.Text) > float.Parse(txtTotalVenta.Text))
                    {
                        if (txtDescuento.Text == "0")
                        {
                            drVentaTickets["TotalEntregado"] = txtTotalVenta.Text;
                        }
                        else
                        {
                            drVentaTickets["TotalEntregado"] = txtDescuento.Text;
                        }
                    }
                    else
                    {
                        drVentaTickets["TotalEntregado"] = txtPagadoVenta.Text;
                    }

                    if (txtDeuda.Text == "")
                        drVentaTickets["SinPagar"] = 0;
                    else
                        drVentaTickets["SinPagar"] = txtDeuda.Text;

                    if (txtDescuento.Text == "0")
                    {
                        drVentaTickets["Total"] = txtTotalVenta.Text;
                    }
                    else
                    {
                        drVentaTickets["Total"] = txtDescuento.Text;

                    }
                
                }
           
                tblVentaTickets.Rows.Add(drVentaTickets);
                SqlCommandBuilder objCommandBuilder = new SqlCommandBuilder(daVentaTickets);
                daVentaTickets.Update(dsVentaTickets, "Ventas");
                conV.Close();
            }
            catch (Exception excTicket)
            {
                MessageBox.Show("Error en acceso a base de datos (Datos Venta).", excTicket.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }

            return true;
        }

        private void resetForm()
        {
            //Reestablezco los valores por defecto de los combos
            cmbTipoVenta.SelectedIndex = 0;
            cmbEmpVenta.SelectedIndex = 0;
            cmbTipoPago.SelectedIndex = 0;
            //Pongo a 0 las casillas de los totales
            txtIVAFlor.Text = "0";
            txtIVAOtros.Text = "0";
            txtTotalVenta.Text = "0";
            txtDescuento.Text = "0";
            //Reseteo la casilla vueltas
            txtVueltaVenta.Text = "";
            txtVueltaVenta.Visible = true;
            label29.Visible = true;
            label18.Visible = true;
            //Reseteo la casilla deuda
            txtDeuda.Text = "";
            txtDeuda.Visible = false;
            label3.Visible = false;
            label4.Visible = false;
            //Reseteo la casilla pagado            
            txtPagadoVenta.Text = "";
            //Reseteo el grid
            dtcompra.Clear();
            dtgCompra.DataSource = dtcompra;

        }

        private void btnDevolucionVenta_Click(object sender, EventArgs e)
        {
            if (cmbEmpVenta.Text != "(Seleccione")
            {
                if (dtgCompra.Rows.Count > 0 && txtTotalVenta.Text != "0")
                {
                    int codigoVenta = generarCodigoVenta();
                    if (guardarDatosVenta(codigoVenta, "Devolucion") && guardarDatosProductosVenta(codigoVenta))
                    {
                        DialogResult dr = MessageBox.Show("La devolución se ha realizado con éxito. Desea asociar la devolución a un cliente?.", "Devolución Completada", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                        if (dr == DialogResult.Yes)
                        {
                            enlazarClienteVenta enlace = new enlazarClienteVenta(codigoVenta, "0");
                            resetForm();
                            enlace.Show();
                        }
                        else
                        {
                            resetForm();
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Debe añadir productos a la devolución.", "Devolución", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Debe seleccionar un empleado.", "Devolución", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void txtPagadoVenta_KeyPress(object sender, KeyPressEventArgs e)
        {
            Validaciones VV = new Validaciones();
            
            if (e.KeyChar == 13)
            {
                enterPulsado = true;
                //Mostrar VUELTAS AL DEPENDIENTE    
                if (VV.EsNum(txtPagadoVenta.Text))
                {
                    float totalVenta = 0;
                    float pagado = 0;
                    float vuelta = 0;
                    float deuda = 0;

                    pagado = float.Parse(txtPagadoVenta.Text);

                    if (txtDescuento.Text == "0")
                    {
                        totalVenta = float.Parse(txtTotalVenta.Text);
                    }
                    else
                    {
                        totalVenta = float.Parse(txtDescuento.Text);
                    }

                    if (pagado < totalVenta)
                    {
                        deuda = totalVenta - pagado;
                        txtVueltaVenta.Text = "";
                        txtVueltaVenta.Visible = false;
                        label29.Visible = false;
                        label18.Visible = false;
                        txtDeuda.Text = deuda.ToString();
                        txtDeuda.Visible = true;
                        label3.Visible = true;
                        label4.Visible = true;
                    }
                    else
                    {
                        vuelta = pagado - totalVenta;
                        txtVueltaVenta.Visible = true;
                        label29.Visible = true;
                        label18.Visible = true;
                        txtDeuda.Text = "";
                        txtDeuda.Visible = false;
                        label3.Visible = false;
                        label4.Visible = false;
                        txtVueltaVenta.Text = vuelta.ToString();
                    }
                }
                else
                {
                    MessageBox.Show("El campo pagado debe ser númerico.", "Venta Ticket", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    txtPagadoVenta.Text = "0";
                }
            }
        }

        private void btnVentaFactura_Click(object sender, EventArgs e)
        {
            if (cmbEmpVenta.Text != "(Seleccione)")
            {
                if (dtgCompra.Rows.Count > 0 && txtTotalVenta.Text != "0")
                {
                    if (txtPagadoVenta.Text == "")
                    {
                        MessageBox.Show("Debe introducir la cantidad pagada por el cliente.?.", "Venta.", MessageBoxButtons.OK, MessageBoxIcon.Question);
                    }
                    else
                    {
                        if (enterPulsado)
                        {
                            int codigoVenta = generarCodigoVenta();
                            if (guardarDatosVenta(codigoVenta, "venta") && guardarDatosProductosVenta(codigoVenta))
                            {
                                ImprimirFactura(codigoVenta);

                                if (txtDeuda.Text == "")
                                {
                                    DialogResult dr = MessageBox.Show("La venta se ha realizado con éxito. Desea asociar la venta a un cliente?.", "Venta Completada.", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                                    if (dr == DialogResult.Yes)
                                    {
                                        enlazarClienteVenta enlace = new enlazarClienteVenta(codigoVenta, "0");
                                        resetForm();
                                        enlace.Show();
                                    }
                                    else
                                    {
                                        resetForm();

                                    }
                                }
                                else
                                {

                                    MessageBox.Show("No se ha pagado el total de la cantidad de la venta, deberá recoger los datos del cliente.", "Venta Incompleta.", MessageBoxButtons.OK, MessageBoxIcon.Question);
                                    enlazarClienteVenta enlace = new enlazarClienteVenta(codigoVenta, txtDeuda.Text);
                                    resetForm();
                                    enlace.Show();

                                }
                            }
                        }
                        else
                        {
                            MessageBox.Show("Debe introducir la cantidad pagada en la casilla de pagado y pulsar enter.", "Venta", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    
                    }
                }
                else
                {
                    MessageBox.Show("Debe añadir productos a la venta.", "Venta Ticket", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Debe seleccionar un empleado.", "Venta", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

       
    }
}
